From fe636e4be20a0140f2b1b52ad66acaeb9537ac14 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Fri, 23 Jan 2009 00:54:08 +0000 Subject: [PATCH] Process the result of refreshing the folder during autocompletion (start_autocompletion): Process the result from refresh...(). We only do completion in the REFRESH_OK case. For the error cases, we don't do anything, as this is autocompletion and must not result in non-asked-for errors popping up. Signed-off-by: Federico Mena Quintero svn path=/trunk/; revision=22180 --- ChangeLog | 4 ++++ gtk/gtkfilechooserentry.c | 31 ++++++++++++++++++++++--------- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5302759f95..bcbfc4b926 100644 --- a/ChangeLog +++ b/ChangeLog @@ -32,6 +32,10 @@ (commit_completion_and_refresh): Don't do anything with the result of refresh...(), since this function doesn't get called during completion-related interaction. + (start_autocompletion): Process the result from refresh...(). We + only do completion in the REFRESH_OK case. For the error cases, + we don't do anything, as this is autocompletion and must not + result in non-asked-for errors popping up. 2009-01-22 Matthew Barnes diff --git a/gtk/gtkfilechooserentry.c b/gtk/gtkfilechooserentry.c index 30dcb61385..de6adea7f7 100644 --- a/gtk/gtkfilechooserentry.c +++ b/gtk/gtkfilechooserentry.c @@ -1584,21 +1584,34 @@ autocomplete (GtkFileChooserEntry *chooser_entry) static void start_autocompletion (GtkFileChooserEntry *chooser_entry) { - /* FMQ: get result from the function below */ - refresh_current_folder_and_file_part (chooser_entry, REFRESH_UP_TO_CURSOR_POSITION); + RefreshStatus status; + + status = refresh_current_folder_and_file_part (chooser_entry, REFRESH_UP_TO_CURSOR_POSITION); - if (!chooser_entry->current_folder) + switch (status) { + case REFRESH_OK: + g_assert (chooser_entry->current_folder_file != NULL); + + if (chooser_entry->current_folder && _gtk_folder_is_finished_loading (chooser_entry->current_folder)) + autocomplete (chooser_entry); + else + chooser_entry->load_complete_action = LOAD_COMPLETE_AUTOCOMPLETE; + + break; + + case REFRESH_INVALID_INPUT: + case REFRESH_INCOMPLETE_HOSTNAME: + case REFRESH_NONEXISTENT: + case REFRESH_NOT_LOCAL: /* We don't beep or anything, since this is autocompletion - the user * didn't request any action explicitly. */ - return; - } + break; - if (_gtk_folder_is_finished_loading (chooser_entry->current_folder)) - autocomplete (chooser_entry); - else - chooser_entry->load_complete_action = LOAD_COMPLETE_AUTOCOMPLETE; + default: + g_assert_not_reached (); + } } static gboolean -- 2.30.2